home *** CD-ROM | disk | FTP | other *** search
/ Gigantic Games 2 / Gigantic Games 2.iso / pc / _a_ / attacks / sources / util.mod < prev   
Text File  |  1994-12-23  |  1KB  |  69 lines

  1. IMPLEMENTATION MODULE Util;
  2.  
  3. IMPORT Libraries;
  4.  
  5. FROM TermInOut IMPORT WriteString, WriteLn, WriteHex;
  6. FROM SYSTEM IMPORT ADDRESS, ADR, BYTE;
  7. FROM System IMPORT HALTX;
  8.  
  9.  
  10. (**********************************)
  11.  
  12. PROCEDURE OpenLibrary( LibraryName : ARRAY OF CHAR ): Libraries.LibraryPtr;
  13. VAR
  14.   LibPtr : Libraries.LibraryPtr;
  15. BEGIN
  16.   LibPtr := Libraries.OpenLibrary( ADR(LibraryName), 0 );
  17.   IF LibPtr = NIL THEN
  18.     WriteString("Couldn't open library ");
  19.     WriteString( LibraryName );
  20.     WriteLn();
  21.     HALTX;
  22.   END;
  23.   RETURN LibPtr;
  24. END OpenLibrary;
  25.  
  26. (**********************************)
  27.  
  28. PROCEDURE WriteAddress( Addr : ADDRESS );
  29. TYPE
  30.   UnType = RECORD
  31.              CASE Selector : BOOLEAN OF
  32.              |  TRUE: Address : ADDRESS;
  33.              | FALSE: Card    : ARRAY [0..1] OF CARDINAL; 
  34.              END;
  35.            END;
  36. VAR
  37.   x : UnType;
  38. BEGIN
  39.   x.Address := Addr;
  40.   WriteHex( x.Card[0], 4 );
  41.   WriteHex( x.Card[1], 4 );
  42. END WriteAddress;
  43.  
  44. (************************************)
  45.  
  46. PROCEDURE WriteByte( Byte : BYTE; Width : CARDINAL );
  47. BEGIN
  48.   WriteHex( CARDINAL(Byte), Width );
  49.   WriteString("H");
  50. END WriteByte;
  51.  
  52. (************************************)
  53.  
  54. PROCEDURE WriteStringPtr( Ptr : ADDRESS );
  55. VAR
  56.   StringPtr : STRINGPTR;
  57. BEGIN
  58.   IF Ptr = NIL THEN
  59.     WriteString("NIL");
  60.   ELSE
  61.     StringPtr := Ptr;
  62.     WriteString( StringPtr^ );
  63.   END;
  64. END WriteStringPtr;
  65.  
  66. (************************************)
  67.  
  68. END Util.
  69.